Field of the Invention
The invention relates to data processing. In particular, systems and methods consistent with the present invention relate to allocation of resources in a cloud computing environment.
Background Information
“Cloud computing” refers to the access of computing resources and data via a network infrastructure, such as the Internet. The computing resources and data storage may be provided by linked data centers of the “cloud,” i.e., network. Each of the data centers may include a plurality of servers that provide computing resources, as well as data storage and retrieval capabilities. Users of cloud computing generally do not need knowledge regarding or control over the underlying data center infrastructure of the “cloud”. Rather, the users may purchase, subscribe, or lease the computing resources and data storage capabilities on an as-needed and ‘pay as you go’ basis.
When a user requests access to the computing resources, the user may request access based on a set of service level requirements, and a pricing agent managing access to the computing resources will provide a price to service the user's request. Some systems allow a user to provide a bid with a request. The bid being a suggested price that the user will pay for the purchase, subscription, or lease of the computing resources. In such a system, the pricing agent managing access to the computing resources will accept the bid or reject the bid. Upon rejection of the bid, the user can submit another bid or the pricing agent may submit a counter-bid.
Whether a pricing agent will accept the user's bid may change throughout the day or relevant time cycle. Typically, the value of an accepted bid increases during peak demand, and decreases when there is slack in the demand for the computing resources. Demand for the computing resource at different data centers will also vary at any given point in time. This means that at any given time T1, the accepted bid at datacenter Alpha, PA, and the accepted bid at data center Beta, PB, may differ by some value ΔP. Although described with reference to two data centers, the example would be the same if one data center offered two different service levels, A and B.
Another characteristic of cloud computing is that the pricing may be static or dynamic. In a static pricing model, the computing resources are available for the contract period and accepted bid price. In a dynamic pricing model, the computing resources are available only so long as the pricing agent does not receive a higher competing bid. Thus, in a dynamic pricing model, a user may lose a computing resource mid-processing cycle if a higher bidder requests access. Upon losing the computing resource, the user may either increase his bid or lengthen his processing term to increase the likelihood that demand will drop and his will become the highest bid.
Another problem with operating under a dynamic pricing model is that it is difficult for a user to select among available (typically competing) data centers, each offering computing resources. The average user typically does not have the information necessary to predict how demand, and therefore price, will change over time for each data center's computing resources. For example, while data center Alpha may accept an lower bid, initially, than data center Beta, over a time cycle (e.g., a day), data center B may be cheaper because a large, cost insensitive, consumer of computing resources typically demands data center Alpha's computing resources for 40% of each time cycle.
Thus, there is a need for a tool the allow users to manage their costs and time horizons when using computing resources offered on a dynamic pricing model.